package com.ld.admin.util.daliyNews.impl;

import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ld.admin.util.daliyNews.DaliyNews;
import com.ld.admin.util.daliyNews.model.DaliyNewsModel;
import com.ld.admin.util.daliyNews.model.NewsInfo;
import com.ld.shieldsb.common.core.util.JsoupUtil;

/**
 * 每日新闻
 * 
 * @author <a href="mailto:donggongai@126.com" target="_blank">吕凯</a>
 * @date 2020年7月22日 上午8:33:17
 *
 */
public class DaliyNewsZhihu implements DaliyNews {
    public static final String NAME = "知乎日报"; //

    public static final String URL = "https://news-at.zhihu.com/api/4/news/latest"; //
    public static final String LINK_URL = "https://cn.bing.com";

    @Override
    public DaliyNewsModel getNews(int num) {
        String htmlContent = null;
        DaliyNewsModel model = null;
        if (num <= 0) {
            num = 1;
        }
        JSONObject jsonObj = JsoupUtil.getRemoteURLJson(URL + num); //
        /*date : 日期
        stories : 当日新闻
            title : 新闻标题
            url : 链接地址
            hint ： 提示，标签
            ga_prefix : 供 Google Analytics 使用
            multipic : 消息是否包含多张图片（仅出现在包含多图的新闻中）
            images : 图像地址（官方 API 使用数组形式。目前暂未有使用多张图片的情形出现，曾见无 images 属性的情况，请在使用中注意 ）
            type : 作用未知
            id : url 与 share_url 中最后的数字（应为内容的 id）
        top_stories : 界面顶部 ViewPager 滚动显示的显示内容（子项格式同上）*/
        /*{
          "date": "20200722", 
          "stories": [
            {
              "image_hue": "0xad754b",
              "title": "人类火星探测「编年史」",
              "url": "https://daily.zhihu.com/story/9726140",
              "hint": "haibaraemily · 16 分钟阅读",
              "ga_prefix": "072207",
              "images": ["https://pic4.zhimg.com/v2-4d3750d36f73d8a38842456b7cdc4b77.jpg"],
              "multipic": true,
              "type": 0,
              "id": 9726140
            },
            {
              "image_hue": "0x463c30",
              "title": "法不强人所难",
              "url": "https://daily.zhihu.com/story/9726149",
              "hint": "平骧 · 2 分钟阅读",
              "ga_prefix": "072207",
              "images": ["https://pic2.zhimg.com/v2-829466fef804f02a5cb94999e75b9e7d.jpg"],
              "type": 0,
              "id": 9726149
            },
            {      ……         },
            {      ……         },
            {      ……         },
            {      ……         }
          ],
          "top_stories": [
            {
              "image_hue": "0x050a0c",
              "hint": "作者 / 苏澄宇",
              "url": "https://daily.zhihu.com/story/9726123",
              "image": "https://pic2.zhimg.com/v2-35f4b36fd74fa0a6a73cee7c11510bdd.jpg",
              "title": "地球上最黑的鱼到底有多黑？",
              "ga_prefix": "072107",
              "type": 0,
              "id": 9726123
            },
            {      ……         },
            {      ……         },
            {      ……         },
            {      ……         }
          ]
        } */
        // 这里的链接还需要加上微软的http://cn.bing.com在前面
        if (jsonObj != null) {
            model = new DaliyNewsModel();
            JSONArray dataResults = jsonObj.getJSONArray("images");

            List<NewsInfo> images = new ArrayList<>();
            for (int i = 0; i < dataResults.size(); i++) {
                JSONObject dataResult = dataResults.getJSONObject(i);
                String copyright = dataResult.getString("copyright");
                String picUrl = LINK_URL + dataResult.getString("url");
                htmlContent = "<img src=\"" + picUrl + "\" width='270' >" + "<br/>"; // height='180'
                htmlContent += copyright;

                NewsInfo image = new NewsInfo();
                image.setPicUrl(picUrl); // 图片
                image.setHtmlContent(htmlContent);
                image.setContent(copyright);
                images.add(image);
            }
            model.setNewss(images);

            model.setLinkUrl(LINK_URL);
            model.setSource(NAME);
            model.setUrl(URL);
        }
        return model;
    }

}
